home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 2
/
Gekikoh Dennoh Club Vol. 2 (Japan).7z
/
Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin
/
fsw
/
mpcmpp
/
mpcmppx.lzh
/
MPCMPBR3.LZH
/
蟲蟲.窮
< prev
Wrap
Text File
|
1996-11-10
|
16KB
|
849 lines
むし採り日記 for MPCM++ by MZL
ソースにコメントが残らないのはクセなので
せめて何か開発中の思考記録資料を。
改編履歴にもなるかも(ォ。
13/Apr/96
思い立ったが吉日。開発に着手。
当分はPCM8++を呼び出すというふざけた仕様。
◎本日のバグ
・_INTVCSに渡すベクタ番号がベクタそのものになっていた。
素直に4で割りましょう。
でも、ベクタ自体をベクタ番号の4倍で表現するのと
どっちが良いのでせう?
・常駐解除処理をやってなかった(ォ。
これはMPCMでもコールが存在しない。
・メモリ解放失敗。
_MFREEに渡すポインタは
プロセス管理ポインタでなければならなかったのに。
前にも似たようなポカやったなぁ(汗
14/Apr/96
例外処理のためお休み(ビデオの未読処理ともいふ)。
またアンディの絵が・・・・・・。
ぬ~べ~の主題歌が変でしばらく悩む。
15/Apr/96
死亡中。
16/Apr/96
ここ数日、某所で萎え萎えな目に。イキロ
まだ何もしてないので当然音などでないが
ZMSC3.Xを騙すことに成功。
ZSV.Rなんかが無音で動作している・・・・・・、空しい。
しかし、TRAP#1から更にTRAP#2を呼び出すのは気色悪いので
IOCSみたくショートカットで呼び出せないかと考えるも腐る脳味噌。
こうなったら作者様にメイルだ(ォ。
◎本日のバグ
・テーブルジャンプで大ボケ
add.w D0,D0
move.w (SYSTEM_TBL,PC,D0.w),D0 *この行がなかった(ォ
jsr (SYSTEM_TBL,PC,D0.w)
:
SYSTEM_TBL::
dc.w func_8000-SYSTEM_TBL
dc.w func_8001-SYSTEM_TBL
17/Apr/96
PCM8++の作者であるTany様からメイルの返事が来る。 (^-^)
TRAP#2のベクタの$0088.wをみてそのアドレスにJMPせよ、とのこと。
まさに膝ポン。早速お礼メイル~~。
で、スタックは掘ってはイカン、とも。
ヤベぇなと思いつつソースをみると
破壊レジスタはまだD0.lとD7.wだけだったのでラッキー。
しかもD7はただのD0.wのコピーなので
D0の上位ワードに放り込んでよし、っと。
教訓。こういうことは早めに聞いておくが吉。
遅くなったのでエスカフローネは後で観ることに。
ネル(ォ
18/Apr/96
死亡中。ポテQ~~ン
19/Apr/96
ビデオを観ている暇がない。
func_02xxのテーブル参照でしばらく悩むも
自己満足モードの最適解を導き出す。
◎本日のバグ
・seqとsneが逆に。
シネ
・HAS.Xは定数式中にスペース('\x20')を入れてはいけないらしい。
今まで知らずにいたことに恐怖。
A:
:
:
B:
:
:
C:
dc.w A-B + C *+Cは無視される。
20/Apr/96
マッチュン氏&MASA氏のSPLASH!をダウンしてたのを思い出して
今頃聴く・・・・・・。
ん~、今のオイラじゃ感想書けない (T-T)
プログラムなんて始めるんじゃなかった(笑)。
たにぃ様に再びメイル。質問事項はTRAP#2ルーチン書き換え問題。
やはりレジスタ操作は必須だった。もっと早く気づけ>オイラ
・1
TRAP#2ルーチンを少し変更してもらう(ォ
今まで
PCM8PP_TRAP02:
:
:
:
rte
となっていたところを
PCM8PP_TRAP02:
bsr.s @f
rte
@@:
:
:
:
rts
と変更して下されば
オイラの方で@@の番地をjsrすれば
メデタシメデタシと。
欠点
PCM8++の処理が遅くなる。
オイラきっと他のみんなにブッ殺されそ(笑)
・2
オイラがメモリ上のTRAP#2ルーチンを書き換える。
dc.b 'PCM8++ '
dc.b VERSION
dc.b 'PCM8/---'
PCM8PP_TRAP02:
:
:
:
rte
となっていたところを
dc.b 'PCM8++ '
dc.b VERSION
dc.b 'PCM8/---'
PCM8PP_TRAP02:
:
:
:
rts
とRTEを書き換えてしまって
オイラの方で
dc.b 'PCM8++ '
dc.b VERSION
dc.b 'PCM8/---'
NEW_TRAP02:
jsr PCM8PP_TRAP02
rte
のようなルーチンを用意しておいて
$0088.wにNEW_TRAP02をいれてやる。
キャッシュクリアを忘れずに。
後者の方が真っ当な方法だろうが常駐解除処理で死にそうな気配。
拡張リンクアレイチェーンの仕様
offset 0
DATA_PTR: ds.l 1 *データ先頭アドレス
DATA_LEN: ds.l 1 *データ長
NEXT_TBL: ds.l 1 *次のテーブルへのポインタ
みたいな感じでだと勝手に判断(ォ
例えば、簡単なアタックとループだけのデータだと
DATA1:
dc.l ATACK_ADR
dc.l LOOP_ADR-ATACK_ADR
dc.l DATA_2
DATA2:
dc.l LOOP_ADR
dc.l LOOP_LEN
dc.l DATA_2
:
:
ATACK_ADR:
dc.w ?? *以降PCMデータ
:
:
LOOP_ADR:
:
:
のようになっていればいいのでは?
ついでに音量が128段階に拡張の予定があるか打診。でも
すでに上位ビットは8bitPCMに喰われているみたいだし(笑)。
20/Apr/96 part2
結局TRAP#2書き換えは後者を選択。
ただ、一筋縄ではいかない。
PCM8PP中のTRAP#2ルーチンにはRTEが最低3ヶ所あった。
不幸中の幸いは致命的な条件分岐は1ヶ所のみだったこと。
よってMPCMPPでのTRAP#2ルーチンを以下のように。
*****************************************
MY_TRAP_02_JMP::
* jmp ABS.l
dc.w $4EF9
OLD_TRAP_02::
ds.l 1
OLD_RTE_ADR::
ds.l 1
dc.b 'PCM8++ '
PCM8PP_VERSION::*01234567
ds.b 1
PCM8_VERSION::
dc.b 'PCM8/---'
*****************************************
MY_TRAP_02::
tst.w D0
bmi MY_TRAP_02_JMP
* jsr ABS.l
dc.w $4EB9
MY_TRAP_02_JSR::
ds.l 1
rte
*****************************************
TRAP#1ではまさかPCM8PPの常駐解除は実行しないので
各サブルーチンコールではTRAP#2の実行には
bsr MY_TRAP_02_JMP *jsr?
を用いれば、PCM8PP中の(RTEが書き換わった)RTSで
戻って来れると。
これでレジスタの退避も悩まずに済みそう。
◎本日のバグ
・ポインタにデータを書き込む事件
またやったか。
アドレス保存したものを取り出さずに
そこに書きにいく大バカ者>オイラ
・自己書き換え破綻
またやった。ァァ.
ラベル+2を書き換えるようにしていて
その間に命令を追加。アリガチ
21/Apr/96
ビデオも観ずになにをやっていたかというと
埃を被っていたスキャナでいろいろ取り込み。
改めてEX-SYSTEMを使ってみる。
う~~。なぜこれが最後なのだ!!
そうこうしているうちに
いまさらクサクサなTITLE.SYS群を作り上げる。 (ヲタ~
ゆうき喬史氏作のRNDCOPYはこういうとき便利。
ENG氏からメイル。
どうやらMINTの問題は解決らしい(ZMSC3)。
って、ZMUSIC-V2の曲のタイトルが 表示されないのもさびしいので
MINTにパッチをあてる。最初は動かず。
が~、disっても元に戻らんかい!!ウキ~。
結局FESに頼ることに。7byte書き換えか。
朝日が黄色い・・・・・・。
ネル。 <MPCM++はドウシタ?
22/Apr/96
ついに音が出る。 \(^-^)/カンドー
今のところADPCMで音程変換なしのもの以外は無視。
SAMPLE.ZMSを鳴らすと異様である。
PCM8++ってADPCM再生中でも
周波数変換できるのだろうか?
◎本日のバグ
・レジスタ破壊
テーブルからオフセットを引いたあとは
番号は破壊されることに気付かず。
これは今後も多発しそうな気配。
・バージョン違い
常駐解除できないってば。
大ボケでした。
古いところにパスが通っているのがいけないんだ。
23/Apr/96
PCM8++はADPCMでの音程変換はまだ実装されていないラシイ。
とりあえず16bitPCMも再生できるように。
過去の水星対応ZMSとかも周波数固定モード(PCM8PP -S)で
@F13を@F5に変更するだけで再生可能。
デバッグ中は耳が死ぬかと思った(マj
過去のADPCMデータは妙に重たいのもある。
36MHzでもキャッシュオフだとシオシオ。
コナンに勝木さんが出てた。モヘ~~
眼鏡掛けてるし。ウヒ。
◎本日のバグ
・PCM8++のファンクションを16倍間違えてた。
どおりで音がでなかったわけだ(笑)。
・MOVEMミス
movem.l D1/D3/A0,-(SP)
:
:
movem.l (SP)+,D1-D3/A0
rts
^(ォ
サブルーチンの仕様変更は危険である。
23/Apr/96~19/May/96
愛の逃避行(ォ
20/May/96
随分久し振りだね(笑)。
いやぁ、色々なことがありました。
GW(ガンダムウイングデハナイ)に岡山に帰省した足で
大阪の闘神伝(アニメ)のイベントに。
しかし、恐るべし「ホールズ刺激粒」!!
お腹Pしちゃって萎え萎えでした。
恭チャソ(註:ヒカミキョウコ)との握手会の時は
しっかり洗った手がまだ臭うような気がして(笑)。
でも、彼女は両手でしっかり握って下さいました。カンゲキ。
おお、顔がニヤけとるのが判る。
子安サソは男性恐怖症になったんではなかろうか?
しかし、あんまりケツケツ叫ぶなよな>Y氏
岩手は花巻の祖母が脳梗塞で倒れる。
生まれて始めて乗った東北新幹線。
降りたった新花巻のホームは異常に寒かった。
意識はあって、見たり聞いたりはできるが
話すことはできなかった。
小学校6年ぐらいの時からずっと会っていなかったのが悔やまれる。
本当はいっぱいいっぱい話したいことがあっただろう。
自分でいうのもなんだが口下手なせいで
ほとんど何も話せなかった。何もできなかった。
親父は「会ってくるだけで充分」と言ってくれたが。
祖母は自分のことはわかってくれたようで
喜んでくれたであろうことが救いだった。
今回は久しぶりに会った同い年の従兄弟に世話になりっぱなしだった。
当然だがオイラより人間的にもしっかりしていてイヤハヤ。
030モードが36MHz駆動に耐えていないことが判明。
DMACは5Vペルチェでなんとか無事?ラシイ。
ファンやペルチェの電源ケーブルをコネクタ化。
ただSCCクロック切り替えスイッチをRGBボックスにつけてしまったので
まだバラし難い。
しかし、この機体もう弄るところないかも。
死す黒もSCCクロックも、ついでにドットクロックまで手をつけた。
50.350MHzオシレータ抜く時にスルホが抜けた(ゲ。まいっか。
え?MPCM++?ナニソレ(プ
実は謎のノイズに苦しみ、しばらく(って1ヶ月)放っておいたラシイ。
その間にも、たにぃ様は数回もPCM8++を改編して下さった。
MODPのテカ様も巻き込んじゃったミタイナ~。申し訳ない。
結局、今までのデータは鳴るようになった。
音程変換ものは相変わらずトブ。
しかし、このテーブルサイズ、凶悪である。
64×256×4×11 = 720896bytes
これでもまだ15.625kHz時でオーバーフローする場合があるからイヤハヤ。
◎本日のバグ
・キーオフ時のPMODE
再生モードを変更したのを覚えておいて
キーオフ時に使おうとしたのだが
設定されてない(ォ。
21/May/96
ネル
22/May/96
21日の晩に東京ドームにハムvsオリックス戦を見に行く。
イチローが敬遠されるところで球場内はブーイングの嵐。
しかし、今関ってオリックスキラーだったのね。シランカッタ。KOされてたけど(ォ
帰りの地下鉄で定期券入れをドームに忘れてきたことに気付きビビル。
係員に無理を言ってなかに探しに入れてもらう。
結局誰かが拾ったのが入れ違いで受け付けに届いていた。
関係者の皆様ご迷惑をおかけ致しました。m(__)m
しかし、人の気配がないドーム内の雰囲気ってけっこうイカス。
普通の人では体験出来ないような貴重な時間でありました(ォォ。
って、今日はそれだけかよ(ォ
23/May/96
V3の5/15版入手。
ADPCM再生はまともに。
でも何故か音程変換しないハズのモノまで変わる。
簡易ワークビュワーをデッチ上げる。
Cで書いたのにそれなりに様になっている。
どうも再生周波数が腐っている。
24/May/96
どうもおかしいと思ったらMPCMの仕様が変更に(;;)
何故そんなことを、と思うような変更。
まあ、ここで内部のデータ構造がどうのこうのとかケチつけても
何処ぞで超ダサなセレクタ作ってた某バカの書いてた
クソドキュメントになってしまうのでやめ(プ。
って、テメェだよテメェ、○○○○○のチソカス野郎!!
覚えてろ、一生忘れないからな(笑)。
Zは志が高いから良いのだ。好きなのだ。
というわけで
無事16bitPCMでも音程変換出来るようになりまチタ。
まだ変だけど(爆)。耳はシナナイと思う・・・・・・。
ついでに内部のワークの取り方も大幅に変更しておいた。
折角作った簡易ワークビュワーも作り直し(;;)
まあおかげで各ファンクション部のソースも大幅に減ったので
少しは良しとするか。繰り返し処理とかでないから
短くなったということは高速化されたということだし。
しかし、このファイルサイズ超凶悪。
予定ではあと128kBytes膨れあがるらしい。
テーブルだけで832kB・・・・・・。アリエナ(プ
ここはやはりまともに演算するバージョンも
作らなければならないのか?
FPUは必須だろうな。
2の768乗根なんてどうやって整数演算するんだ(笑)。
25/May/96
とりあえずジャンクで公開。
魔法使いTai、買ったはいいけどいつ見れるんだろ。
ビデオの未読も山の様。
26/May/96
結局、テーブルサイズを大幅に縮小。
予定通り上下それぞれ1オクターブ分しかテーブルを持たないことに。
しかも、周波数が倍のデータは1オクターブ上のデータと
同じであることに気付く。まさに膝ポンであった。
結果、
700kBytesを越えていた実行ファイルサイズがなんと
60kBytes強に(笑)。しかも周波数が2つ増えている。
これで実行バイナリが同梱できるぜ。
その代償としてプログラム中に
divs.w #768,D1
なんてクソとろい命令が入ったり
その他諸々の辻褄合わせで実行速度が犠牲に。 イキロ
ぉを!?
ADPCMも変になった。
第一回目の発音時のみ。ナゼダ??
過去の水星対応データだが、MML中の
@Fn
となっている部分を全て
;$A6;n
に変更すれば演奏できるようになった(nは数値)。
V2時代の15.625kHz16bitPCMも
@F5から@F8への変更で対応できるように。
8bitPCMは保留(ォ。
27/May/96
そろそろ煮詰まってくる。
音程変換が変になる理由が思い付かない。
28/May/96
divsをやめて除算テーブルを作る。
サイズが倍に。まあこんなものでしょう?
除算命令からテーブル版に差し替えたが、現象は変わらず。
まあ、エンバグしてないだけましか。
◎本日のバグ
・trap #$01のチェック忘れ
MPCM.Xが常駐している時は
常駐しないように変更。
29/May/96~17/Jul/96
再度、愛の逃避行(ォォ
18/jul/96
ZMSC3の0712版からMPCMの内部仕様が(func 07xx等)変更に。
どうやらこねたダダが通ったらしい(ォ
要望を組み入れて下さって感謝でゴザル。>作者様の方々
V2時代の@Fnとの互換を内部的にごまかす。
@F5,@F6は駄目だが、@F13とかは中間コードでOK。
って、やっぱり自分で手を入れないと駄目。
ワークのラベル名がそろそろ意味不明に。
これを直すのも今のうちだぞ(笑)。
実は、zpcnv3でハマっていた。
中途半端な拡張子自動識別が裏目に出ている模様。
拡張子を.P16に変更して(マルチピリオド不可)
.16bitPCM_TIMBRE(.16bitPCM_TONE)共通コマンドで
ようやく元データが.m44な曲が音程変換で鳴るように。
サンプル曲作らんとなぁ(プ
◎本日のバグ
・謎のswap D1
ソースの共通部分は書き換える時に注意だってバ。
・ループのバグ
ワンショットなPCMもループしてしまうので
よくみると必ずループを設定するようになっていたという(ォ。
これのせいでループのオフセットが
奇数になってしまうバグも退治。
19/Jul/96~21/Jul/96
ZzZzzz......
22/Jul/96
PCM8++のADPCM音程変換にバグがあるらしい。
とりあえずMPCM++のバグではなかったので安心(ォ
おかしくなる周波数を調査。
PCM8++の出力周波数をオーバーすると変になるらしい。
23/Jul/96
v0.82が届く。
・・・確かに音程は正しくなったクサイ。
でもこのノイズは?
やはり出力周波数をオーバーすると再現。
24/Jul/96
v0.82aが届く。完璧ダワ!!
ついでにdisってから再アセンブルして全く同じ
バイナリが得られるのを確認してから
PCM8++中の全てのnopを取り去る。
結果040turboの35MHzでコピーバックでも問題なく動作。
やっぱ060だとcpushaで割り込み落ちしてるのかな?
25/Jul/96
030の35MHzで実験。
SAMPLE.zmsが出力44.1kHzで処理落ち(ォ
32kHzなら問題なしだが。ウ~ム
マホTaiの2巻もゲット。
アバンは使い回し。まあ、一番金が掛かっている部分かも(プ
茜チャソの出番少ないガガーソ。
沙絵&七香の友情信頼イカス。
瑞葉様は巨乳でなかったらハマれたのに(ォ
26/Jul/96
m68000機で実験。
元祖MPCMなら24MHzでもSAMPLE.zmsは問題なしだが
MPCM++だと出力16kHzでも敗北。
Xellentだとどうなるんだか?
せめてPCM8++だけでもSRAM(ハイメモリ)に載ればねぇ。
27/Jul/96
PCM8++のソースが届く。m(__)m
ハイメモリ対応化+音量128段改造は無理であった。パタ
ZMSC3の0731版も届く(非公開)。
@Fnの問題も解決、その他の細かい部分も格段に改善された模様。
28/Jul/96
PCM8++のv0.82aが公開されていた。
ZMSC3の0731版が公開され次第、MPCM++も、てことで
そのための細かい準備をせねば(;;)
29/Jul/96
元祖MPCMはサブルーチンのテーブルを
ロングワードで持ってるらしい。
むう、互換性のあるファンクション作れそうにない(;;)
効果音チャンネルもないし。捨て捨て(ォ
そういえば8bitPCMのチェックもしてないなぁ。マイッカ
30/Jul/96~07/Sep/96
ポテQン
とある理由により、干からびる。
とりあえずTWRのバカヤロ
結局サンプル曲も用意できず仕舞い。
08/Sep/96
とりあえず、転載はPCM8++とZMSC3の最新版が
存在するところなら可、ということで公開。
ベータ版でなくなるのはいつのことやら。
07/Sep/96~08/Oct/96
某月某日、某所での書き込み。
あまりの無神経さに腹立たしいを通り越して
呆れかえってしまった。
げんなりしてたところに
なすさんが対応データの第一弾を。
超サンクス。
09/Oct/96
ENG氏より不具合い報告
@kで音痴になる??んな馬鹿な。
でもポカミスの気がする。
10/Oct/96~01/Nov/96
色々と逃避行動
02/Nov/96
どうやら音痴症状は現在の仕様では回避不能の様子。
◎本日のバグ
・音量に不具合い。
過去のなすさんの報告通り。ハヤクナオセヨ>オイラ
結局音量17段階>16段階の差ということらしい。
v0=v1ということにして逃げる(ォ。
03/Nov/96~09/Nov/96
特定の曲で発生する謎のエラーに悩まされる。
こんな爆弾持ちでは最終版などとは片腹痛いわ。(;;)
10/Nov/96
爆弾発見。
何故かチャンネル$52が呼び出されている模様(ォ。
おかげであらぬアドレスに妙な値を書き込むなど
悪の限りを尽して暴走していたことを確認。
◎本日のバグ
・エラーチェック不足
16CHしかないのでそれ以上の値で
呼び出された場合でも動作するように
誤魔化した(汗。
[MZL]